Dart _fe_analyzer_shared scanner Token
Token
是一个抽象类,它实现了 SyntacticEntity 接口,代表了从输入中扫描出的一个词素。每个词素都知道它前面和后面的词素,形成了一个双向链表的词素列表。
主要方法和属性:
-
Token(TokenType type, int offset, [CommentToken? precedingComment])
:- 这是一个工厂构造函数,用于创建一个新的词素,该词素具有给定的类型和偏移量。
- 类型为 SimpleToken
-
Token.eof(int offset, [CommentToken? precedingComments])
:- 这是一个工厂构造函数,用于创建一个表示文件结束的词素。
-
charCount
:返回此词素解析的字符数。 -
charOffset
:返回此词素在源文本中的开始字符的偏移量。 -
charEnd
:返回此词素在源文本中的结束字符的偏移量。 -
beforeSynthetic
:- 用于获取和设置在此合成词素之前的词素。
- 这是一个 getter 和 setter,
-
end
:- 返回从文件开始到语法实体最后一个字符后的偏移量。
- 这是一个覆盖了
SyntacticEntity
接口的 getter
-
endGroup
:- 返回与此词素对应的词素,
- 如果此词素不是一对匹配词素的第一个,则返回
null
。
-
isEof
:- 如果此词素表示文件结束,则返回
true
。
- 如果此词素表示文件结束,则返回
-
isIdentifier
:- 如果此词素是标识符,则返回
true
。
- 如果此词素是标识符,则返回
-
isKeyword
:- 如果此词素是关键字,则返回
true
。
- 如果此词素是关键字,则返回
-
isKeywordOrIdentifier
:- 如果此词素是关键字或标识符,则返回
true
。
- 如果此词素是关键字或标识符,则返回
-
isModifier
:- 如果此词素是修饰符(如
abstract
或const
),则返回true
。
- 如果此词素是修饰符(如
-
isOperator
:- 如果此词素表示操作符,则返回
true
。
- 如果此词素表示操作符,则返回
-
isSynthetic
:- 如果此词素是合成词素,则返回
true
。 - 合成词素是由解析器引入的,用于从代码中的错误中恢复。
- 如果此词素是合成词素,则返回
-
isTopLevelKeyword
:- 如果此词素是开始顶级声明的关键字(如
class
、enum
、import
等),则返回true
。
- 如果此词素是开始顶级声明的关键字(如
-
isUserDefinableOperator
:- 如果此词素表示可以由用户定义的操作符,则返回
true
。
- 如果此词素表示可以由用户定义的操作符,则返回
-
keyword
:- 如果是关键字词素,则返回关键字,否则返回
null
。 - 类型为
Keyword?
- 如果是关键字词素,则返回关键字,否则返回
-
kind
:返回此词素的类型确定的种类枚举。 -
length
:这是一个覆盖了SyntacticEntity
接口的 getter,返回语法实体源范围中的字符数量。 -
lexeme
:这是一个 getter,返回表示此词素的词素。 -
next
:用于获取和设置词素流中的下一个词素。 -
offset
:用于获取和设置从文件开始到词素的第一个字符的偏移量。 -
precedingComments
:- 返回在此词素之前的注释列表中的第一个注释,如果此词素之前没有注释,则返回
null
。
- 返回在此词素之前的注释列表中的第一个注释,如果此词素之前没有注释,则返回
-
previous
:用于获取和设置词素流中的上一个词素。 -
stringValue
:这是一个 getter,对于符号和关键字词素,返回此词素表示的字符串值。对于字符串词素,此方法返回null
。 -
type
:返回词素的类型。- 类型为 TokenType
-
matchesAny(List<TokenType> types)
:这是一个方法,如果此词素具有给定类型中的任何一个,则返回true
。 -
setNext(Token token)
:这是一个方法,用于设置词素流中的下一个词素。这有一个副作用,即将此词素设置为给定词素的上一个词素。返回传入的词素。 -
setNextWithoutSettingPrevious(Token? token)
:这是一个方法,用于设置词素流中的下一个词素,但不改变给定词素的上一个词素。返回传入的词素。 -
toString()
:这是一个覆盖了Object
类的方法,返回用于调试目的的此词素的文本表示。 -
value()
:这是一个方法,返回此词素的值。对于关键字词素,这是与词素关联的关键字,对于其他词素,这是与词素关联的词素。 -
lexicallyFirst([Token? t1, Token? t2, Token? t3, Token? t4, Token? t5])
:这是一个静态方法,比较给定的词素,找出在被解析的源中首先出现的词素。也就是说,返回所有词素中最左边的词素。返回偏移量最小的词素,如果所有词素都是null
,则返回null
。
本文作者:Maeiee
本文链接:Dart _fe_analyzer_shared scanner Token
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!